package com.lrkj.notice.mapper;

import com.lrkj.notice.domain.NoticeSiteMessageUser;
import com.lrkj.notice.vo.MyNoticeVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 消息关联用户Mapper接口
 *
 * @author yajun_ren
 * @date 2022-09-07
 */
public interface NoticeSiteMessageUserMapper
{
    /**
     * 查询消息关联用户
     *
     * @param id 消息关联用户ID
     * @return 消息关联用户
     */
    public NoticeSiteMessageUser selectNoticeSiteMessageUserById(String id);

    /**
     * 查询消息关联用户列表
     *
     * @param noticeSiteMessageUser 消息关联用户
     * @return 消息关联用户集合
     */
    public List<NoticeSiteMessageUser> selectNoticeSiteMessageUserList(NoticeSiteMessageUser noticeSiteMessageUser);

    /**
     * 新增消息关联用户
     *
     * @param noticeSiteMessageUser 消息关联用户
     * @return 结果
     */
    public int insertNoticeSiteMessageUser(NoticeSiteMessageUser noticeSiteMessageUser);

    /**
     * 修改消息关联用户
     *
     * @param noticeSiteMessageUser 消息关联用户
     * @return 结果
     */
    public int updateNoticeSiteMessageUser(NoticeSiteMessageUser noticeSiteMessageUser);

    /**
     * 删除消息关联用户
     *
     * @param id 消息关联用户ID
     * @return 结果
     */
    public int deleteNoticeSiteMessageUserById(String id);

    /**
     * 批量删除消息关联用户
     *
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteNoticeSiteMessageUserByIds(String[] ids);

    /**
     * 批量新增消息关联用户
     *
     * @param noticeSiteMessageUsers
     * @return 结果
     */
    public int batchAddData(@Param("saveBeans") List<NoticeSiteMessageUser> noticeSiteMessageUsers);


    /**
     * 删除消息关联用户信息
     *
     * @param messageId 消息ID
     * @return 结果
     */
    public int deleteByMessageId(@Param("messageId") String messageId);

    //更新未读状态
    public int updateHaveRead(@Param("id") String id);

    //通过接收人ID 获取当前未读条数
    public int notReadMsgCountRead(@Param("receiveId") String receiveId);

    //全部更新为已读
    public int updateNoRead(@Param("receiveId") String receiveId);

    //我的消息分组列表
    public List<MyNoticeVo> noticeGroupList(@Param("userName") String userName);

    //我的消息分组数量
    public List<MyNoticeVo> noticeGroupNum(MyNoticeVo myNoticeVo);
}
